﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Twodi.Aspect.Args;

namespace Twodi.Interfaces
{
    /// <summary>
    /// Define um componente que possui limites de posição.
    /// </summary>
    public interface ILimited
    {
        /// <summary>
        /// Limites do componente.
        /// </summary>
        Rectangle Limits
        {
            get;
            set;
        }

        /// <summary>
        /// Evento invocado quando limites são alterados.
        /// </summary>
        event EventHandler LimitsChanged;

        /// <summary>
        /// Evento invocado quando componente sai dos limites especificados.
        /// </summary>
        event EventHandler<OutsideLimitsEventArgs> OutsideLimits;

        /// <summary>
        /// Evento invocado quando componente toca nos limites especificados.
        /// </summary>
        event EventHandler<OutsideLimitsEventArgs> TouchLimits;
    }
}
